The invention relates generally to client/server communications for mobile computing devices and in particular to server initiated high-level protocol communications with the client.
Client/Server distributed computing environments are well known in the art. A central server system, comprising one or more servers, running a plurality of applications, is provided. Multiple client machines may connect to the system in order to retrieve data from one or more of its servers. The clients are physically separate from the server, running their own operating system. Clients typically communicate with the server system via an asynchronous connection using a standard comms protocol such as TCP/IP.
It is common for such a system to include a mail server running database application software with email capability such as Lotus Notes, available from the IBM Corporation. The mail server is responsible for receiving the electronic mail addressed to all users registered with it.
Typically the database software comprises a mail database including multiple mailboxes. Each registered user owns one of these mailboxes and mail arriving at the server is automatically deposited in the appropriate box. Each client machine runs software (eg Lotus Notes) allowing a user to access mail, work with it, and to compose their own emails. Such software may also provide added functionality, for example a calendar, an address book etc.
Some email programs such as Lotus Notes also allow each user to store a copy of their mail database on their local machine. A user manipulates their mail locally and only connects to the server in order to send and receive mail. Thus improved response times are observed. The software enabling a user to synchronise (ie replicate) their local database with the server""s mailbox is generally part of the functionality of the email application itself (as with Lotus Notes).
The use of pervasive devices is on the increase. Such devices may include personal digital assistants (PDAs), palmtops, notepads etc. Such devices have no fixed connection to a server. Rather, they have to specifically dialup the server in order to communicate with the server, for example to synchronise their local copy of a mailbox with the corresponding mailbox held on the server. After such an operation the mobile device will then disconnect from the server.
These mobile computing devices also provide additional functionality. They can be used to connect into any service provider in order to receive data. For example, they can be used to browse the World Wide Web and download information. A travel agent may take and/or confirm a client""s booking via a PDA. Share prices may be requested by and received at the client etc.
Such information is frequently transmitted from the server to the client by means of a high-level protocol (eg via a TCP/IP session). Establishing a TCP/IP session between a client and server is commonplace. However, many of these mobile computing devices only provide support for a low level protocol for inbound and outbound calls. They do not cater for high-level protocol inbound calls, and this has hitherto prevented server-initiation of any such high-level protocol communications session.
Accordingly, the present invention provides a method for establishing a server initiated high-level protocol communications session between a server and a client on a mobile computing device, wherein said mobile computing device supports a low-level protocol for both inbound and outbound calls, and a high-level protocol for outbound calls only, said method comprising the steps of: initiating a first call from said server to said client using the low-level protocol; responsive to detecting said first call at the client, initiating a second call from said client to said server; and responsive to receiving the second call at the server, establishing said communications session.
Such mobile computing devices (also known as pervasive devices), for example palmtops, notebooks, notepads, personal digital assistants (PDAs) and intelligent mobile phones, are becoming increasingly widespread, and are frequently used in a client server paradigm. However they have no fixed connection to a server, but rather a user typically has to specifically dialup as required. Such dial-up usually happens over a mobile telephone network (digital or analog). Hitherto it has been very difficult for the server to xe2x80x9cpushxe2x80x9d information onto such mobile computing devices, but this is now greatly facilitated by the approach of the present invention.
Because of size and power limitations, many mobile computing devices are limited in their communications support. This support is typically incorporated into the operating system of the device (another reason for limiting the support to provide quick start-up and subsequent operation of the OS). Thus it is relatively common in such devices for the operating system to support a high level protocol such as TCP/IP for outbound calls, but not for inbound calls, for which instead only relatively low level protocols such as a simple serial link are supported natively. Since many server applications rely on high-level protocols such as TCP/IP, this has hitherto prevented such applications initiating communications with a remote mobile device.
(Note that xe2x80x9chighxe2x80x9d and low in this context reflect the support for functionality such as error checking, retries, etc. Note also that although the mobile device will typically support the low level protocol for both outbound and inbound calls, strictly speaking such low level protocol support is only necessary for inbound calls, not outbound calls, for the purposes of the present invention).
Thus in accordance with a preferred embodiment of the present invention, the server initiates communication with the client (a personal digital assistant) using a supported low-level protocol. Once this call has been received at the client, and it is detected that the call includes predetermined information, the first call is dropped, before initiating a second call. For this second call the client connects in to the server to establish a high-level protocol communications session. Information can subsequently be received from the server via this session.
Note that several variations on possible on the form and handling of the initial call from the server to the client. One possibility is to use SMS messaging, a feature of many mobile telephone networks, as the low level protocol. This is generally supported natively by many mobile devices. Another possibility is to use network communication protocols at the client as the low-level protocol to detect the caller id of the server. Thus if the first call is determined as originating from a particular server based on the caller id (whether or not the mobile device actually answers the call itself) this can then be used to trigger an outbound call back from the client to the server.
In the preferred embodiment, the server stores details of protocols supported by the client. Thus for any given communication with a client, the server can first check to see whether the client supports a desired high-level protocol for inbound calls, in which case the relevant communication session can be started directly. However, if the client does not support this protocol for inbound calls, the two-call approach of the present invention can be employed, with an initial call using a low-level protocol.
The invention further provides a server for initiating a high-level protocol communications session with a client on a mobile computing device, wherein said mobile computing device supports a low-level protocol for both inbound and outbound calls, and a high-level protocol for outbound calls only, comprising: means for initiating a first call to the client using the low-level protocol; means for receiving a second call from the client, wherein the initiation of said second call by the client is responsive to detecting said first call at the client; and means, responsive to receipt of said second call, for establishing said communications session, with the client using said high-level protocol.
The invention further provides a mobile computing device client for receiving data from a server via a high-level protocol communications session, wherein said device supports a low-level protocol for both inbound and outbound calls, and a high-level protocol for outbound calls only, said device comprising: means for receiving a first call from the server using the low-level protocol; means, responsive to receiving said first call, for initiating a second call to the server using the high-level protocol; and means for establishing said communications session with the server using said high-level protocol.